﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Caixa.Model
{
    [Serializable]
    public class Movimentacao
    {
        #region "Fields"

        /// <summary>    
        /// Define a relação entre as propriedades do objeto 
        /// com o campo no banco de dados.
        /// OBS.: O Nome da constante deve ser o mesmo da propriedade.
        /// </summary>
        public static class Fields
        {
            public const string TABELA = "Movimentacao";

            public const string ID = "CodMovimentacao";
            public const string IDCONTA = "CodConta";
            public const string TIPO = "Tipo";
            public const string MOVIMENTACAOTIPO = "CodMovimentacaoTipo";
            public const string DATA = "Data";
            public const string DESCRICAO = "Descricao";
            public const string VALOR = "Valor";
            public const string SALDO = "Saldo";
        }

        #endregion

        #region " Enum "

        public enum TipoMovimentacao
        {
            Debito = -1,
            Credito = 1
        }

        #endregion

        #region " Properts "

        public int ID { get; set; }
        public int IDConta { get; set; }
        public TipoMovimentacao Tipo { get; set; }
        public MovimentacaoTipo.MovimentacaoTipoEnum MovimentacaoTipo { get; set; }
        public DateTime Data { get; set; }
        public string Descricao { get; set; }
        public double Valor { get; set; }
        public double Saldo { get; set; }
        public int Fator
        {
            get
            {
                return Convert.ToInt32(this.Tipo);
            }
        }

        #endregion
    }
}
